package com.mcxx.modules.temporary.service;

import com.mcxx.modules.miniSalvation.order.dto.*;
import com.mcxx.modules.temporary.order.dto.TmpApprovalDTO;
import com.mcxx.modules.temporary.order.dto.TmpAuditDTO;
import com.mcxx.modules.temporary.order.entity.TmpOrderDetailEntity;
import com.mcxx.modules.temporary.order.param.OrderListSearchParam;
import com.mcxx.modules.temporary.order.param.TemporaryOrderParam;
import com.mcxx.result.BaseResult;
import com.yinhai.ta404.component.audit.vo.ExcelInfo;
import com.yinhai.ta404.core.security.vo.UserAccountVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface TempBackLogService {


    Map<String, List<String>> sendCheck(List<CheckDTO> checkList, UserAccountVo userAccountVo, String businessType);

    Map<String, List<String>> sendCheckCounty(List<CheckDTO> checkList, UserAccountVo userAccountVo, String businessType);


    String saveInHouseRecord(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo,String isUpOrder);


    int modifyInHouseRecord(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    int isCanCalcFamilySalary(String orderId);

    void saveFirstAudit(TmpAuditDTO tmpAuditDTO, UserAccountVo userAccountVo);

    void confirmFirstAudit(TmpAuditDTO tmpAuditDTO, UserAccountVo userAccountVo);


    void saveSalvationAudit(TmpAuditDTO tmpAuditDTO, UserAccountVo userAccountVo);


    String submitSalvationRequest(TmpAuditDTO tmpAuditDTO, UserAccountVo userAccountVo);


    TmpAuditDTO calcFamilySalaryBySalvationRule(TmpAuditDTO tmpAuditDTO, UserAccountVo userAccountVo);

    TmpAuditDTO getFirstSalvationAudit(String familyId, String orderId);

    TmpAuditDTO getFirstSalvationAudits(String familyId, String orderId,String mainReason);

    TmpAuditDTO getSalvationAudit(String familyId, String orderId);


    TmpAuditDTO getSalvationAudits(String familyId, String orderId,String mainReason);


    TmpApprovalDTO getApproval(String familyId, String orderId);


    void saveApproval(TmpOrderDetailEntity orderDetailEntity, UserAccountVo userAccountVo);


    String confirmApproval(TmpOrderDetailEntity orderDetailEntity, UserAccountVo userAccountVo);


    Map<String, List<String>> issueOrder(List<String> orderIdList,List<String> idcardAllList);



    Map<String, List<String>> exceBatchReport(List<String> orderIdList, UserAccountVo userAccountVo);



    int isInHouse(String orderId, List<String> orderList, UserAccountVo userAccountVo);


    String isCanAuditOrApproval(String orderId, String familyId, String curBizState, UserAccountVo userAccountVo);

    void isCanApprove(String orderId,String familyId,UserAccountVo userAccountVo);


    BaseResult<Boolean> cancelSalvationRequestTown(String orderId);


    Map<String, List<String>> cancelSalvationRequestTowns(List<String> orderIdList, UserAccountVo userAccountVo);


    void isCanFirstAudit(String orderId,String familyId,UserAccountVo userAccountVo);

    void isCanSalvationAudit(String orderId,String familyId,UserAccountVo userAccountVo);

    void isCanInHouse(String orderId, UserAccountVo userAccountVo);

     void isCanUploadCheckFile(String familyId,String orderId);

    int uploadCheckFile(MultipartFile[] files, String orderId, String reason ,String areaCode);

    int chengeMemberSaveObject(String orderId,String familyId,String memberId,String type,String isMaster);

    ExcelInfo exportExcelSave(TemporaryOrderParam param, UserAccountVo accountVo);


    void sendBackSys(String orderId, String content, UserAccountVo userAccountVo, String businessType);


    void deleteSelectRecord(String orderId);
}
